﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using BuyRitmus.Negocio.Model;

namespace BuyRitmus.Negocio.DAL
{
    public class EstadoDAL
    {
        private const string SELECT_ESTADO = "select ID_UF, DESCRICAO, ATIVO from UF;";

        private ConnectionStringSettings setup = ConfigurationManager.ConnectionStrings["ProducaoConnectionString"];

        public IList<EstadoDTO> Listar()
        {
            try
            {
                IList<EstadoDTO> estados = new List<EstadoDTO>();

                using (SqlConnection cnn = new SqlConnection(setup.ConnectionString))
                {
                    using (SqlCommand cmd = new SqlCommand(SELECT_ESTADO, cnn))
                    {
                        cnn.Open();

                        using (SqlDataReader dr = cmd.ExecuteReader())
                        {
                            while (dr.Read())
                            {
                                estados.Add(this.MontarEstado(dr));
                            }
                        }
                    }
                }

                return estados;
            }
            catch (Exception)
            {
                throw;
            }
        }

        private EstadoDTO MontarEstado(SqlDataReader dr)
        {
            EstadoDTO estado = new EstadoDTO();

            if (!dr.IsDBNull(0))
                estado.Sigla = dr.GetString(0);
            if (!dr.IsDBNull(1))
                estado.Descricao = dr.GetString(1);
            if (!dr.IsDBNull(2))
                estado.Ativo = dr.GetBoolean(2);

            return estado;
        }
    }
}
